// axios 公共配置
// 基地址
axios.defaults.baseURL = 'http://geek.itheima.net'

//请求拦截器    config请求的配置参数
axios.interceptors.request.use(config => {
    //同一携带token字符串在请求头
    const token = localStorage.getItem('token')
    if (token) {
        //具体格式：Bearer token值    由后端规定
        config.headers.Authorization = `Bearer ${token}`
    }
    //返回请求配置 
    return config;

}, function (err) {
    return Promise.reject(err)
})

//响应拦截器   对服务器响应结果先进行拦截，执行拦截函数
//错误位置  request.status
axios.interceptors.response.use(function (response) {
    // console.log(response)
    //让所有响应的结果 都经过处理，then内返回的result直接为data内的数据
    const result = response.data
    return result
}, function (err) {
    console.dir(err)
    //由于上面的请求拦截器 发起任何请求都会携带token  服务器检测token不对，会响应401  这里将每个响应都先判断是否为401
    if (err.response.status === 401) {
        alert('token过期')
        localStorage.removeItem('token')
        location.href = '../login/index.html'
    }
    return Promise.reject(err)
})